Next:
35. Instead of Virtual Function
, Previous:
37. Do not Re-Declare inheritanced default parameters
, Up:
Index
36. Do not Re-Declare inheritanced non-virtual function
class
B
{
public
:
void
mf
(
)
;
// ...
}
;
class
D
:
public
B
{
public
:
void
mf
(
)
;
// ...
}
;
D
x
;
B
*
pB
=&
x
;
pB
->
mf
(
)
;
// B::mf
호
출
D
*
pD
=&
x
;
pD
->
mf
(
)
;
// D::mf
호
출
위에서 같은 객체의 mf 함수를 호출하지만, 다른 동작을 실행할 수 있다.(일관성이 없는 동작)
비가상 함수는 정적 바인딩(static binidng)되며,
가상 함수는 동적 바인딩(dynamic binding)된다.